/**
 * Definition for a binary tree node.
 * function TreeNode(val, left, right) {
 *     this.val = (val===undefined ? 0 : val)
 *     this.left = (left===undefined ? null : left)
 *     this.right = (right===undefined ? null : right)
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
 var findBottomLeftValue = function(root) {
    const traversal = function(root,leftLen){ // 传入节点和左深度
      if(!root.left && !root.right){ // 如果是叶子节点
        if(maxLen < leftLen){ // 同时最大的小于这个左深度
          maxLen = leftLen // 更新最大深度
          maxLenValue = root.val // 更新最大深度的值
        }
        return
      }
      if(root.left){
        traversal(root.left,leftLen+1)
      }
      if(root.right){
        traversal(root.right,leftLen+1)
      }
      return
    }
    let maxLen = -1 // 定义最大深度
    let maxLenValue = null // 最大深度对应的值
    traversal(root,0) // 调用函数传入节点和初始值0
    return maxLenValue
};